home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / langs / prolog68.zoo / prolog.68 / codes / xlator.wam < prev   
Encoding:
Text File  |  1994-06-03  |  35.7 KB  |  589 lines

  1. Prolog-68 compiler (code generator)
  2. p'add_dealloc'/4 88 528 84 84 48 532 16 16 48 'no' 35 8 518 534 48 'yes'
  3. 98 290 355 82 'deallocate'/1 353 518 529 24 [ 'no' -40 'yes' -26] 520
  4.  
  5. p'alloc_perms'/5 290 528 286 276 12 532 22 20 64 51 0 3 68 34 4 547 518
  6. 533 122 512 32 2 -8 3 -28 4 -24 96 293 288 85 'literal'/2 274 279 547 114
  7. -4 147 -32 116 -20 127 2048 -16 514 p'alloc_perms'/5 0 160 -4 32 145 -12
  8. 146 -16 147 -8 514 p'set_split'/4 12 160 -4 20 145 -20 146 -16 163 -8 20
  9. 148 -12 513 32 515 p'alloc_perms_1'/5 534 512 32 2 -8 3 -32 4 -28 96 293
  10. 288 85 'cut'/1 274 114 -4 115 -24 116 -20 127 2048 -16 514 p'alloc_perms'/5
  11. 0 160 -4 32 225 306 369 146 -16 147 -8 514 p'set_split'/4 12 160 -4 20 161
  12. -12 20 146 -20 163 -8 20 148 -16 513 32 515 p'alloc_perms_1'/5 535 -248
  13. 20 537 -128 520
  14.  
  15. p'alloc_perms_1'/5 76 528 72 12 60 532 50 20 96 293 288 401 480 1 500 438
  16. 215 '-'/2 325 321 243 20 227 327 357 246 4 515 p'alloc_perms_1'/5 534 64
  17. 34 4 36 12 518 520
  18.  
  19. p'analyse_c'/6 690 528 634 620 602 532 86 24 512 28 0 -28 1 -24 2 -20 3
  20. -16 4 -12 5 -8 544 -4 144 -28 516 640 548 -4 208 'call'/1 342 145 -24 146
  21. -20 147 -16 148 -12 149 -8 513 40 515 p'analyse_l'/6 533 88 512 24 1 -20
  22. 3 -16 5 -12 80 ','/2 288 277 547 145 -20 115 -8 117 -4 514 p'analyse_c'/6
  23. 0 144 -24 145 -20 162 -8 24 147 -16 164 -4 24 149 -12 513 36 515 p'analyse_c'/6
  24. 533 144 512 24 4 -12 5 -24 80 '\\+'/1 294 547 215 '->'/2 326 368 'fail'
  25. 208 ';'/2 327 368 'true' 241 28 209 'local'/3 273 272 359 116 -20 197 127
  26. 2048 -16 514 p'analyse_d'/6 0 144 -8 145 -4 178 'b' 147 -12 148 -16 514
  27. p'prepare_cut'/5 12 160 -8 12 161 -4 12 146 -12 513 24 515 p'link_d'/3 533
  28. 210 512 44 0 -20 1 -16 2 -12 3 -8 4 -32 5 -44 544 -4 127 2048 -40 127 2048
  29. -36 127 2048 -28 127 2048 -24 538 26 144 -20 177 ';' 178 0 19 516 388 519
  30. 24 540 144 -20 177 '->' 178 0 19 516 388 548 -4 144 -20 209 'local'/3 342
  31. 341 339 146 -12 147 -8 148 -40 197 514 p'analyse_d'/6 20 160 -8 24 161 -4
  32. 24 178 'b' 147 -12 148 -16 514 p'prepare_cut'/5 12 160 -8 12 161 -4 12 146
  33. -12 513 24 515 p'link_d'/3 533 50 48 '!' 35 8 100 292 357 84 'cut'/2 368
  34. 'cut' 290 547 241 0 177 'true' 515 p'global_context'/3 534 515 p'analyse_l'/6
  35. 535 -596 24 536 -278 536 -70 537 -22 535 -614 24 536 -296 537 -36 535 -628
  36. 24 536 8 536 -314 537 -54 530 24 [ ','/2 -558 '\\+'/1 -468]
  37.  
  38. p'analyse_clause'/5 260 528 6 188 188 532 178 20 80 ':-'/2 512 36 273 276
  39. 2 -4 99 291 280 83 'literal'/5 368 'head' 305 336 275 257 4 -12 547 144
  40. -8 127 2048 -32 127 2048 -28 127 2048 -24 514 p'index_key'/2 0 144 -8 145
  41. -4 146 -16 514 p'find_vars'/3 8 144 -12 209 'global'/2 341 340 146 -8 195
  42. 148 -16 149 -4 514 p'analyse_c'/6 12 160 -12 16 161 -8 16 178 'cutpt' 147
  43. -16 164 -4 16 513 28 515 p'prepare_cut'/5 534 512 8 0 -8 2 -4 99 291 356
  44. 83 'literal'/5 368 'head' 337 336 369 257 144 -8 514 p'index_key'/2 0 144
  45. -8 145 -4 194 513 20 515 p'find_vars'/3
  46.  
  47. p'analyse_d'/6 288 528 272 262 248 532 94 24 512 28 0 -28 1 -24 2 -20 3
  48. -16 100 292 357 84 'branch'/2 274 273 544 -4 144 -28 516 640 548 -4 208
  49. 'call'/1 342 145 -24 146 -20 147 -16 148 -12 149 -8 513 40 515 p'analyse_l'/6
  50. 533 98 512 24 1 -20 3 -16 5 -8 80 ';'/2 288 277 100 294 274 86 'branch'/2
  51. 292 293 547 145 -20 115 -4 514 p'analyse_i'/6 0 144 -24 145 -20 162 -4 24
  52. 147 -16 148 -12 149 -8 513 36 515 p'analyse_d'/6 533 20 48 'fail' 35 8 37
  53. 16 547 518 534 100 294 357 86 'branch'/2 292 293 515 p'analyse_i'/6 535
  54. -242 24 536 -52 537 -34 535 -256 24 537 -44 535 -266 24 536 -176 537 -58
  55.  
  56. p'analyse_i'/6 230 532 220 24 512 48 0 -4 1 -48 2 -24 3 -44 4 -20 5 -40
  57. 544 -8 144 -4 127 2048 -36 127 2048 -32 127 2048 -28 127 2048 -16 127 2048
  58. -12 516 644 144 -4 209 '->'/2 339 344 516 128 548 -8 144 -48 177 'true'
  59. 162 -12 48 514 p'local_context'/3 8 160 -8 40 209 'global'/2 368 'true'
  60. 336 146 -16 147 -24 148 -12 214 'cut'/2 368 'cut' 336 229 326 340 514 p'analyse_c'/6
  61. 16 160 -12 24 145 -24 162 -8 24 147 -20 164 -4 24 149 -16 513 36 515 p'analyse_c'/6
  62. 534 515 p'analyse_c'/6
  63.  
  64. p'analyse_l'/6 414 532 254 24 512 52 0 -12 1 -52 2 -48 3 -44 4 -40 5 -36
  65. 544 -4 144 -12 225 368 'call' 371 275 277 127 2048 -32 127 2048 -28 127
  66. 2048 -20 127 2048 -8 516 384 548 -4 545 -8 538 72 144 -16 516 640 548 -8
  67. 144 -12 145 -48 146 -44 514 p'find_vars'/3 0 144 -40 210 'literal'/5 368
  68. 'builtin' 338 347 346 257 225 322 344 516 128 519 86 540 144 -16 145 -20
  69. 516 384 160 -20 52 145 -24 146 -28 514 p'append'/3 0 144 -32 161 -28 52
  70. 516 384 160 -32 52 145 -52 146 -48 147 -44 148 -40 149 -36 514 p'analyse_c'/6
  71. 0 513 64 518 533 82 512 28 1 -28 2 -24 3 -20 4 -16 5 -12 544 -4 113 -8 514
  72. p'expand_expr_args'/2 0 548 -4 160 -8 28 145 -28 146 -24 147 -20 148 -16
  73. 149 -12 513 40 515 p'analyse_c'/6 534 512 12 0 -12 2 -8 3 -4 100 292 357
  74. 84 'literal'/5 289 338 337 336 257 144 -12 514 p'call_class'/2 0 144 -12
  75. 145 -8 146 -4 513 24 515 p'find_vars'/3
  76.  
  77. p'ann_val'/3 184 528 172 150 162 532 16 12 48 'skip' 65 547 518 533 122
  78. 80 'var'/3 512 32 279 291 278 83 'y'/1 276 97 274 273 2 -16 544 -4 144 -28
  79. 127 2048 -24 516 640 548 -4 144 -12 145 -8 146 -16 514 p'ann_val'/3 12 144
  80. -8 145 -4 146 -12 514 p'tree_get_item'/3 8 144 -12 145 -8 162 -4 12 513
  81. 24 515 p'ann_val_1'/3 534 97 288 289 515 p'ann_val'/3 535 -156 12 537 -20
  82. 535 -150 12 537 -30
  83.  
  84. p'ann_val_1'/3 176 528 164 146 154 532 64 12 80 'put'/1 257 49 'unsafe_value'
  85. 82 'unsafe'/1 512 8 273 544 -4 144 -8 516 640 548 -4 144 -8 177 'done' 513
  86. 20 517 128 533 70 48 'unify' 49 'local_value' 512 12 2 -4 544 -12 545 -8
  87. 538 26 144 -4 177 'global' 516 128 548 -8 520 519 4 540 548 -12 513 24 518
  88. 534 49 'value' 518 535 -84 12 537 -16 535 -158 12 537 -26
  89.  
  90. p'ann_var'/3 228 528 180 158 170 532 16 12 48 'skip' 65 547 518 533 98 97
  91. 512 24 277 276 2 -16 80 'var'/3 274 291 273 83 'y'/1 288 547 145 -16 114
  92. -4 514 p'tree_get_item'/3 0 144 -12 145 -8 162 -4 24 514 p'ann_var_1'/3
  93. 12 144 -12 145 -8 146 -4 513 24 515 p'ann_var'/3 533 14 80 'call'/3 259
  94. 547 518 533 14 80 'try_else'/1 257 547 518 534 97 288 289 515 p'ann_var'/3
  95. 535 -164 12 537 -20 535 4 12 537 -30 530 24 [ 'call'/3 -66 'try_else'/1
  96. -50 'var'/3 -166]
  97.  
  98. p'ann_var_1'/3 62 532 56 12 512 12 0 -12 49 'variable' 2 -8 544 -4 144 -8
  99. 516 640 548 -4 144 -12 145 -8 513 24 515 p'val_type'/2 534 518
  100.  
  101. p'annotate'/4 136 528 28 28 6 532 18 16 48 0 3 35 8 547 518 534 512 24 0
  102. -12 97 277 276 2 -8 3 -4 112 -16 145 -12 514 p'tree_size'/2 0 144 -24 145
  103. -20 146 -16 514 p'ann_var'/3 0 144 -12 145 -16 146 -8 147 -4 514 p'init_other_perms'/4
  104. 12 144 -12 145 -8 162 -4 12 513 24 515 p'ann_val'/3
  105.  
  106. p'arith_op'/3 522 528 518 518 366 532 24 12 48 '+' 49 0 11 50 'skip' 518
  107. 533 22 48 '-' 49 0 11 50 'op_neg' 518 533 22 48 'abs' 49 0 11 50 'op_abs'
  108. 518 533 22 48 '+' 49 0 19 50 'op_add' 518 533 22 48 '-' 49 0 19 50 'op_sub'
  109. 518 533 22 48 '*' 49 0 19 50 'op_mul' 518 533 22 48 '//' 49 0 19 50 'op_div'
  110. 518 533 22 48 'rem' 49 0 19 50 'op_rem' 518 533 22 48 'mod' 49 0 19 50 'op_mod'
  111. 518 533 22 48 '/\\' 49 0 19 50 'op_and' 518 533 22 48 '\\/' 49 0 19 50 'op_or'
  112. 518 533 22 48 'xor' 49 0 19 50 'op_xor' 518 533 22 48 '<<' 49 0 19 50 'op_shl'
  113. 518 533 22 48 '>>' 49 0 19 50 'op_shr' 518 534 48 '\\' 49 0 11 50 'op_not'
  114. 518 529 120 [ '*' -238 '+' 128 '-' 138 '//' -214 '/\\' -142 '<<' -70 '>>'
  115. -46 '\\' -24 '\\/' -118 'abs' -310 'mod' -166 'rem' -190 'xor' -94] 535
  116. -492 12 537 -422 535 -478 12 537 -408 520
  117.  
  118. p'bind_perms'/1 94 528 90 18 12 532 8 4 64 518 534 96 291 512 12 274 83
  119. '-'/2 273 272 144 -8 177 '$PERM' 178 0 11 516 388 176 0 11 145 -8 146 -4
  120. 516 392 144 -12 513 24 515 p'bind_perms'/1 520
  121.  
  122. p'bind_temps'/1 62 528 58 18 12 532 8 4 64 518 534 96 288 512 4 272 177
  123. '$TEMP' 178 0 11 516 388 144 -4 513 16 515 p'bind_temps'/1 520
  124.  
  125. p'call_class'/2 76 532 64 8 512 16 1 -12 544 -16 113 -8 114 -4 516 388 160
  126. -8 16 161 -4 16 146 -12 131 514 p'builtin'/4 12 548 -4 513 16 518 534 49
  127. 'external' 518
  128.  
  129. p'classify_arg'/17 256 528 242 252 206 532 46 68 48 'known' 37 4 38 8 39
  130. 12 40 16 42 36 44 44 46 52 47 64 60 518 533 44 48 'toplevel' 38 20 40 28
  131. 41 4 42 8 43 12 44 16 46 52 47 64 60 518 533 52 80 'compound'/1 368 'known'
  132. 37 4 38 8 39 12 40 16 42 36 44 44 46 52 47 64 60 547 518 534 80 'compound'/1
  133. 368 'unknown' 38 20 40 28 42 36 44 44 45 4 46 8 47 60 12 47 64 16 518 529
  134. 24 [ 'known' -198 'toplevel' -152] 535 -144 68 537 -94 520
  135.  
  136. p'customize'/3 240 528 190 236 236 532 40 12 80 'str'/2 288 370 '/'/2 368
  137. '.' 368 0 19 82 'lst'/1 320 518 533 22 80 'con'/2 288 369 82 'nil'/1 320
  138. 518 533 64 80 'var'/3 288 291 368 'unsafe_value' 83 'y'/1 291 82 'var'/3
  139. 320 288 370 'unsafe_value'/1 353 80 'y'/1 288 547 403 401 501 464 518 534
  140. 80 'var'/3 288 291 292 83 'y'/1 291 82 'var'/3 320 288 324 80 'y'/1 288
  141. 403 401 501 464 518 530 24 [ 'con'/2 -142 'str'/2 -182 'var'/3 32] 535 -156
  142. 12 537 -94 520
  143.  
  144. p'customize_call'/4 164 528 160 160 114 532 60 16 48 'builtin' 50 0 3 81
  145. '/'/2 368 'call' 289 83 'meta_call'/1 291 401 480 0 488 547 401 480 1 501
  146. 467 518 533 24 48 'builtin' 50 0 3 83 'call_builtin'/1 353 518 534 48 'external'
  147. 83 'call'/2 353 354 518 529 24 [ 'builtin' 32 'external' -22] 535 -144 16
  148. 537 -86 520
  149.  
  150. p'customize_exec'/3 150 528 146 146 100 532 54 12 48 'builtin' 81 '/'/2
  151. 368 'call' 289 82 'meta_exec'/1 290 401 480 0 488 547 401 480 1 501 466
  152. 518 533 18 48 'builtin' 82 'execute_builtin'/1 353 518 534 48 'external'
  153. 82 'execute'/1 353 518 529 24 [ 'builtin' 32 'external' -20] 535 -130 12
  154. 537 -78 520
  155.  
  156. p'expand_expr_args'/2 842 528 706 838 838 532 54 8 80 '=:='/2 288 290 81
  157. ','/2 289 370 ','/2 291 368 '$=:=' 81 '$EVALUATE'/1 320 83 '$EVALUATE'/1
  158. 322 518 533 52 80 '=\\='/2 288 290 81 ','/2 289 370 ','/2 291 368 '$=\\='
  159. 81 '$EVALUATE'/1 320 83 '$EVALUATE'/1 322 518 533 52 80 '<'/2 288 290 81
  160. ','/2 289 370 ','/2 291 368 '$<' 81 '$EVALUATE'/1 320 83 '$EVALUATE'/1 322
  161. 518 533 52 80 '=<'/2 288 290 81 ','/2 289 370 ','/2 291 368 '$=<' 81 '$EVALUATE'/1
  162. 320 83 '$EVALUATE'/1 322 518 533 52 80 '>'/2 288 290 81 ','/2 289 370 ','/2
  163. 291 368 '$>' 81 '$EVALUATE'/1 320 83 '$EVALUATE'/1 322 518 533 52 80 '>='/2
  164. 288 290 81 ','/2 289 370 ','/2 291 368 '$>=' 81 '$EVALUATE'/1 320 83 '$EVALUATE'/1
  165. 322 518 533 38 80 'is'/2 288 290 81 ','/2 289 370 '$ASSIGN'/1 320 81 '$EVALUATE'/1
  166. 322 518 533 52 80 'skip'/1 288 81 ','/2 289 370 ','/2 290 370 '$SKIP'/1
  167. 291 81 '$EVALUATE'/1 320 82 '$ASSIGN'/1 323 518 533 52 80 'put'/1 288 81
  168. ','/2 289 370 ','/2 290 370 '$PUT'/1 291 81 '$EVALUATE'/1 320 82 '$ASSIGN'/1
  169. 323 518 533 52 80 'tab'/1 288 81 ','/2 289 370 ','/2 290 370 '$TAB'/1 291
  170. 81 '$EVALUATE'/1 320 82 '$ASSIGN'/1 323 518 533 56 80 'skip'/2 288 290 81
  171. ','/2 289 370 ','/2 291 370 '$SKIP'/2 320 288 81 '$EVALUATE'/1 322 83 '$ASSIGN'/1
  172. 320 518 533 56 80 'put'/2 288 290 81 ','/2 289 370 ','/2 291 370 '$PUT'/2
  173. 320 288 81 '$EVALUATE'/1 322 83 '$ASSIGN'/1 320 518 534 80 'tab'/2 288 290
  174. 81 ','/2 289 370 ','/2 291 370 '$TAB'/2 320 288 81 '$EVALUATE'/1 322 83
  175. '$ASSIGN'/1 320 518 530 120 [ '<'/2 -590 '=:='/2 -698 '=<'/2 -536 '=\\='/2
  176. -644 '>'/2 -482 '>='/2 -428 'is'/2 -374 'put'/1 -280 'put'/2 -114 'skip'/1
  177. -334 'skip'/2 -172 'tab'/1 -226 'tab'/2 -58] 520
  178.  
  179. p'fence'/1 138 528 134 134 66 532 12 4 48 'begin' 518 533 10 48 'branch'
  180. 518 533 10 48 'last_branch' 518 533 10 48 'builtin' 518 534 48 'external'
  181. 518 529 56 [ 'begin' -58 'branch' -46 'builtin' -22 'external' -12 'last_branch'
  182. -34] 520
  183.  
  184. p'find_vars'/3 124 532 32 12 97 352 354 512 4 544 -4 516 640 548 -4 513
  185. 16 518 533 28 34 4 512 4 544 -4 516 672 548 -4 513 16 518 534 512 16 0 -16
  186. 1 -12 2 -8 144 -16 129 114 -4 516 388 160 -4 16 145 -16 146 -12 147 -8 513
  187. 28 515 p'find_vars'/4
  188.  
  189. p'find_vars'/4 140 528 28 28 6 532 18 16 48 0 3 35 8 547 518 534 512 28
  190. 0 -4 1 -28 2 -12 3 -24 144 -4 145 -28 114 -8 127 2048 -20 127 2048 -16 516
  191. 392 384 480 1 501 452 160 -8 28 145 -12 146 -16 514 p'find_vars'/3 12 160
  192. -8 16 145 -16 162 -4 16 147 -12 513 28 515 p'find_vars'/4
  193.  
  194. p'gen_assign_code'/7 294 528 282 282 232 532 58 28 48 '$TEMP' 49 0 11 101
  195. 293 358 85 'cvar'/5 242 4 290 368 'pop' 355 356 257 547 176 0 11 517 392
  196. 533 64 48 '$PERM' 49 0 11 38 20 99 291 356 83 'var'/3 368 'pop' 291 257
  197. 83 'y'/1 242 4 290 547 176 0 11 517 392 533 48 49 0 3 38 20 99 291 356 83
  198. 'pop_integer'/1 352 512 4 544 -4 516 664 548 -4 513 16 518 534 512 4 2 -4
  199. 176 '!?   ERROR : Illegal left-hand side of is/2.' 514 p'message'/1 0 176
  200. '!?   ------- ' 145 -4 514 p'message'/2 4 520 513 12 518 535 8 28 536 -106
  201. 537 -60 529 24 [ '$PERM' -180 '$TEMP' -238] 535 -152 28 537 -106
  202.  
  203. p'gen_body_code'/7 98 512 36 0 -36 1 -32 2 -28 3 -24 4 -20 5 -16 6 -12 144
  204. -36 113 -8 114 -4 516 388 160 -8 36 161 -4 36 146 -36 147 -32 148 -28 149
  205. -24 150 -20 151 -16 152 -12 513 48 515 p'gen_body_code'/9
  206.  
  207. p'gen_body_code'/9 424 528 412 412 362 532 56 36 48 '$VOID' 49 0 11 56 'known'
  208. 102 294 359 86 'arg'/3 355 356 371 292 357 84 'put_variable'/1 323 547 518
  209. 533 58 48 '$TEMP' 49 0 11 56 'toplevel' 102 294 359 86 'bvar'/5 242 4 290
  210. 355 356 357 257 547 176 0 11 517 392 533 86 48 '$PERM' 49 0 11 56 'known'
  211. 102 294 359 86 'arg'/3 355 356 371 292 357 84 'var'/3 292 293 257 84 'put'/1
  212. 323 85 'y'/1 242 4 290 547 176 0 11 517 392 533 58 49 0 3 56 'known' 102
  213. 294 359 86 'arg'/3 355 356 371 292 357 84 'con'/2 292 352 84 'put'/1 323
  214. 547 518 534 88 'compound'/1 299 220 'put'/1 355 221 'str'/2 332 370 '/'/2
  215. 352 353 220 'arg'/3 323 246 36 294 371 333 291 234 332 247 32 295 244 48
  216. 245 16 252 20 176 0 3 515 p'gen_body_struct'/12 535 8 36 536 -156 537 -100
  217. 529 24 [ '$PERM' -252 '$TEMP' -312 '$VOID' -368] 535 -202 36 537 -146
  218.  
  219. p'gen_body_struct'/12 294 532 28 48 33 0 36 12 38 20 40 28 42 36 547 518
  220. 534 512 76 1 -76 2 -72 3 -28 4 -68 5 -24 6 -64 7 -20 8 -60 9 -16 10 -56
  221. 11 -52 400 480 1 500 427 144 -48 145 -72 114 -12 127 2048 -44 127 2048 -40
  222. 127 2048 -36 127 2048 -32 127 2048 -8 127 2048 -4 516 392 144 -12 145 -8
  223. 146 -4 516 388 160 -8 76 161 -4 76 162 -12 76 147 -48 148 -76 149 -28 150
  224. -44 151 -24 152 -40 153 -20 154 -36 155 -16 156 -32 157 -52 514 p'gen_bs_arg'/14
  225. 28 144 -20 145 -48 146 -44 163 -16 48 148 -40 165 -12 48 150 -36 167 -8
  226. 48 152 -32 169 -4 48 154 -28 155 -24 513 60 515 p'gen_body_struct'/12
  227.  
  228. p'gen_bs_arg'/14 546 528 530 530 476 532 50 56 48 '$VOID' 49 0 11 40 28
  229. 42 36 44 44 101 293 358 85 'unify_void'/1 368 0 11 547 518 533 70 48 '$TEMP'
  230. 49 0 11 61 'unknown' 40 28 44 44 105 297 362 89 'cvar'/5 242 4 290 368 'unify'
  231. 357 358 257 547 176 0 11 517 392 533 72 48 '$PERM' 49 0 11 40 28 42 36 44
  232. 44 101 293 358 85 'var'/3 368 'unify' 293 257 85 'y'/1 242 4 290 547 176
  233. 0 11 517 392 533 44 49 0 3 40 28 42 36 44 44 101 293 358 85 'con'/2 368
  234. 'unify' 352 547 518 533 80 36 12 101 302 291 94 'str'/2 368 'unify' 370
  235. '/'/2 352 353 547 246 16 247 20 248 24 249 28 250 32 251 36 252 40 253 44
  236. 176 0 3 515 p'gen_body_struct'/12 534 101 302 358 94 'var'/3 368 'unify'
  237. 302 368 'value' 94 'x'/1 302 105 303 60 362 95 60 'free'/1 334 223 60 'put'/1
  238. 334 223 64 'str'/2 335 60 370 '/'/2 352 353 230 335 64 291 223 64 'alloc'/1
  239. 334 234 335 64 247 20 295 248 16 252 32 251 36 253 44 176 0 3 515 p'gen_body_struct'/12
  240. 535 12 56 536 -278 536 -236 537 -158 529 24 [ '$PERM' -364 '$TEMP' -436
  241. '$VOID' -486] 535 -328 56 536 -286 537 -208
  242.  
  243. p'gen_code'/4 36 528 32 6 32 96 288 241 24 289 132 244 20 199 200 515 p'gen_code'/9
  244. 520
  245.  
  246. p'gen_code'/9 1302 528 1262 1298 1130 532 36 36 48 'skip' 65 101 368 'skip'
  247. 369 35 8 244 0 515 p'allocate_temporaries'/1 533 118 48 'begin' 97 512 32
  248. 279 278 98 290 276 82 'try_else'/1 277 3 -16 101 368 'skip' 369 6 -12 7
  249. -8 8 -4 244 0 514 p'allocate_temporaries'/1 0 132 244 20 144 -32 145 -28
  250. 146 -20 147 -16 150 -12 231 309 337 232 257 336 513 44 515 p'gen_code'/9
  251. 533 146 48 'branch' 97 512 36 280 279 3 -16 101 368 'skip' 369 6 -12 104
  252. 278 272 98 290 371 296 371 294 276 82 'jump'/1 310 88 'label'/1 296 86 'retry_else'/1
  253. 277 103 328 273 244 0 514 p'allocate_temporaries'/1 0 132 244 20 144 -36
  254. 145 -32 146 -20 147 -16 150 -12 231 309 305 232 310 304 513 48 515 p'gen_code'/9
  255. 533 140 48 'last_branch' 97 512 32 279 278 3 -16 101 368 'skip' 369 6 -12
  256. 104 277 272 98 290 371 296 371 368 'trust_else_fail' 276 82 'jump'/1 309
  257. 88 'label'/1 296 103 328 273 244 0 514 p'allocate_temporaries'/1 0 132 244
  258. 20 144 -32 145 -28 146 -20 147 -16 150 -12 151 -8 232 309 304 513 44 515
  259. p'gen_code'/9 533 40 48 'end' 97 288 289 98 297 290 89 'label'/1 297 104
  260. 329 296 515 p'gen_code'/9 533 20 48 'head' 97 288 289 515 p'gen_code'/9
  261. 533 20 48 'special' 97 288 289 515 p'gen_code'/9 533 104 48 'builtin' 97
  262. 512 28 278 277 2 -20 3 -16 101 368 'skip' 369 6 -12 7 -8 8 -4 244 0 514
  263. p'allocate_temporaries'/1 0 132 244 20 144 -28 145 -24 146 -20 147 -16 150
  264. -12 151 -8 152 -4 513 40 515 p'gen_code'/9 533 104 48 'external' 97 512
  265. 28 278 277 2 -20 3 -16 101 368 'skip' 369 6 -12 7 -8 8 -4 244 0 514 p'allocate_temporaries'/1
  266. 0 132 244 20 144 -28 145 -24 146 -20 147 -16 150 -12 151 -8 152 -4 513 40
  267. 515 p'gen_code'/9 533 264 80 'literal'/5 512 68 287 -68 279 258 273 1 -64
  268. 2 -28 3 -60 4 -56 5 -24 6 -12 7 -52 8 -48 545 -4 127 2048 -44 127 2048 -40
  269. 127 2048 -36 127 2048 -20 127 2048 -16 538 42 144 -68 145 -64 146 -48 514
  270. p'trimmable_call'/3 0 548 -4 144 -44 145 -8 516 128 519 16 540 144 -44 145
  271. -12 516 128 144 -32 161 -20 68 162 -16 68 516 388 144 -68 209 '/'/2 340
  272. 339 146 -32 147 -44 148 -28 149 -40 150 -24 151 -36 514 p'translate_literal'/8
  273. 32 144 -36 145 -32 162 -8 36 147 -28 148 -24 165 -4 36 166 -12 36 151 -20
  274. 152 -16 513 48 515 p'gen_code'/9 534 97 512 36 280 279 3 -28 4 -24 6 -20
  275. 7 -16 8 -12 80 'cut'/2 288 289 245 16 115 -8 117 -4 514 p'gen_cut_code'/6
  276. 0 144 -36 145 -32 162 -8 36 147 -28 148 -24 165 -4 36 150 -20 151 -16 152
  277. -12 513 48 515 p'gen_code'/9 529 120 [ 'begin' -1086 'branch' -966 'builtin'
  278. -590 'end' -676 'external' -484 'head' -634 'last_branch' -818 'skip' -1122
  279. 'special' -612] 530 24 [ 'cut'/2 -246 'literal'/5 -510] 520
  280.  
  281. p'gen_cut_code'/6 350 528 338 216 328 532 84 24 80 'save'/1 368 'cutpt'
  282. 512 8 1 -8 35 8 37 16 544 -4 144 -8 177 '$TEMP' 178 0 11 516 388 548 -4
  283. 176 0 11 145 -8 178 'cutpt' 513 20 517 392 533 120 48 'cut' 512 12 1 -4
  284. 37 16 98 292 355 84 'var'/3 368 'cut' 368 'cutpt' 257 544 -12 144 -4 177
  285. '$TEMP' 178 0 11 127 2048 -8 516 388 176 0 11 145 -4 146 -8 516 392 160
  286. -8 12 177 'cutpt' 516 136 548 -12 513 24 518 534 512 32 0 -32 1 -4 2 -28
  287. 3 -24 4 -20 5 -16 144 -4 113 -12 178 0 11 127 2048 -8 516 388 176 0 11 145
  288. -4 146 -8 516 392 160 -12 32 161 -8 32 146 -32 147 -28 148 -24 149 -20 150
  289. -16 513 44 515 p'gen_cut_code_1'/7 535 -238 24 537 -120 535 -332 24 537
  290. -130
  291.  
  292. p'gen_cut_code_1'/7 122 528 118 118 82 532 34 28 48 '$TEMP' 101 293 358
  293. 85 'cvar'/5 353 354 355 356 257 518 534 48 '$PERM' 38 20 99 291 356 83 'var'/3
  294. 354 290 257 82 'y'/1 353 518 529 24 [ '$PERM' -42 '$TEMP' -74] 520
  295.  
  296. p'gen_expr_code'/7 656 528 636 636 570 532 44 28 48 '$VOID' 49 0 11 547
  297. 176 '!?   ERROR : Void variable in arithmetical expression.' 512 0 514 p'message'/1
  298. 0 520 513 12 518 533 56 48 '$TEMP' 49 0 11 101 293 358 85 'cvar'/5 242 4
  299. 290 368 'push' 355 356 257 547 176 0 11 517 392 533 64 48 '$PERM' 49 0 11
  300. 38 20 99 291 356 83 'var'/3 368 'push' 291 257 83 'y'/1 242 4 290 547 176
  301. 0 11 517 392 533 48 49 0 3 38 20 99 291 356 83 'push_integer'/1 352 512
  302. 4 544 -4 516 664 548 -4 513 16 518 533 60 48 '.' 49 0 19 38 20 98 288 369
  303. 99 291 356 83 'push_integer'/1 320 512 4 544 -4 516 664 548 -4 513 16 518
  304. 533 64 48 '.' 49 0 19 512 4 2 -4 547 176 '!?   ERROR : Illegal list in arithmetical expression.'
  305. 514 p'message'/1 0 176 '!?   ------- ' 145 -4 514 p'message'/2 4 520 513
  306. 12 518 533 72 512 8 0 -8 49 0 3 544 -4 144 -8 516 668 548 -4 176 '!?   ERROR : Atom occurring in arithmetical expression.'
  307. 514 p'message'/1 4 176 '!?   ------- ' 145 -4 514 p'message'/2 4 520 513
  308. 12 518 533 90 512 32 1 -32 2 -28 3 -24 4 -20 5 -16 6 -12 544 -4 145 -32
  309. 114 -8 514 p'arith_op'/3 0 548 -4 144 -32 145 -28 146 -24 227 337 340 148
  310. -16 149 -12 513 44 515 p'gen_subexpr_code'/6 534 512 4 2 -4 176 '!?   ERROR : Unknown expression.'
  311. 514 p'message'/1 0 176 '!?   ------- ' 145 -4 514 p'message'/2 4 520 513
  312. 12 518 535 24 28 536 -400 536 -354 536 -296 536 -234 536 -164 537 -76 529
  313. 24 [ '$PERM' -490 '$TEMP' -548 '$VOID' -592] 535 -462 28 536 -288 536 -218
  314. 537 -130
  315.  
  316. p'gen_head_code'/7 98 512 36 0 -36 1 -32 2 -28 3 -24 4 -20 5 -16 6 -12 144
  317. -36 113 -8 114 -4 516 388 160 -8 36 161 -4 36 146 -36 147 -32 148 -28 149
  318. -24 150 -20 151 -16 152 -12 513 48 515 p'gen_head_code'/9
  319.  
  320. p'gen_head_code'/9 410 528 398 398 348 532 44 36 48 '$VOID' 49 0 11 56 'known'
  321. 37 16 102 294 359 86 'arg'/1 355 547 518 533 58 48 '$TEMP' 49 0 11 56 'toplevel'
  322. 102 294 359 86 'hvar'/5 242 4 290 355 356 357 257 547 176 0 11 517 392 533
  323. 84 48 '$PERM' 49 0 11 56 'known' 100 292 357 84 'var'/3 292 293 257 84 'get'/1
  324. 355 85 'y'/1 242 4 290 102 294 359 86 'arg'/1 323 547 176 0 11 517 392 533
  325. 56 49 0 3 56 'known' 100 292 357 84 'con'/2 292 352 84 'get'/1 355 102 294
  326. 359 86 'arg'/1 323 547 518 534 100 300 301 92 'str'/2 300 370 '/'/2 352
  327. 353 92 'get'/1 355 102 300 247 40 295 92 'arg'/1 323 88 'compound'/1 299
  328. 253 12 132 245 24 244 20 136 248 36 176 0 3 515 p'gen_head_struct'/12 535
  329. 8 36 536 -156 537 -102 529 24 [ '$PERM' -250 '$TEMP' -310 '$VOID' -354]
  330. 535 -202 36 537 -148
  331.  
  332. p'gen_head_struct'/12 294 532 28 48 33 0 36 12 38 20 40 28 42 36 547 518
  333. 534 512 76 1 -76 2 -72 3 -28 4 -68 5 -24 6 -64 7 -20 8 -60 9 -16 10 -56
  334. 11 -52 400 480 1 500 427 144 -48 145 -72 114 -12 127 2048 -44 127 2048 -40
  335. 127 2048 -36 127 2048 -32 127 2048 -8 127 2048 -4 516 392 144 -12 145 -8
  336. 146 -4 516 388 160 -8 76 161 -4 76 162 -12 76 147 -48 148 -76 149 -28 150
  337. -44 151 -24 152 -40 153 -20 154 -36 155 -16 156 -32 157 -52 514 p'gen_hs_arg'/14
  338. 28 144 -20 145 -48 146 -44 163 -16 48 148 -40 165 -12 48 150 -36 167 -8
  339. 48 152 -32 169 -4 48 154 -28 155 -24 513 60 515 p'gen_head_struct'/12
  340.  
  341. p'gen_hs_arg'/14 550 528 534 534 480 532 50 56 48 '$VOID' 49 0 11 40 28
  342. 42 36 44 44 101 293 358 85 'unify_void'/1 368 0 11 547 518 533 70 48 '$TEMP'
  343. 49 0 11 61 'unknown' 40 28 44 44 105 297 362 89 'cvar'/5 242 4 290 368 'unify'
  344. 357 358 257 547 176 0 11 517 392 533 72 48 '$PERM' 49 0 11 40 28 42 36 44
  345. 44 101 293 358 85 'var'/3 368 'unify' 293 257 85 'y'/1 242 4 290 547 176
  346. 0 11 517 392 533 44 49 0 3 40 28 42 36 44 44 101 293 358 85 'con'/2 368
  347. 'unify' 352 547 518 533 80 36 12 101 302 291 94 'str'/2 368 'unify' 370
  348. '/'/2 352 353 547 246 16 247 20 248 24 249 28 250 32 251 36 252 40 253 44
  349. 176 0 3 515 p'gen_head_struct'/12 534 101 302 358 94 'var'/3 368 'unify'
  350. 302 368 'variable' 94 'x'/1 302 103 303 60 291 95 60 'str'/2 303 60 370
  351. '/'/2 352 353 95 60 'get'/1 334 105 303 60 362 95 60 'alloc'/1 334 107 303
  352. 60 295 95 60 'free'/1 334 132 244 20 248 24 136 248 36 252 40 253 44 176
  353. 0 3 515 p'gen_head_struct'/12 535 12 56 536 -282 536 -240 537 -162 529 24
  354. [ '$PERM' -368 '$TEMP' -440 '$VOID' -490] 535 -332 56 536 -290 537 -212
  355.  
  356. p'gen_subexpr_code'/6 198 528 30 30 6 532 20 24 48 0 3 35 8 37 16 518 534
  357. 512 44 1 -44 2 -40 3 -20 4 -36 5 -16 400 480 1 501 423 145 -44 114 -12 127
  358. 2048 -28 127 2048 -24 127 2048 -8 127 2048 -4 516 392 144 -12 145 -8 146
  359. -4 516 388 160 -8 44 161 -4 44 162 -12 44 147 -28 148 -20 149 -24 150 -16
  360. 514 p'gen_expr_code'/7 20 144 -12 145 -24 146 -20 163 -8 24 148 -16 165
  361. -4 24 513 36 515 p'gen_subexpr_code'/6
  362.  
  363. p'global_context'/3 82 528 42 78 78 532 16 12 80 'global'/2 353 354 518
  364. 534 80 'local'/3 258 288 515 p'global_context'/3 530 24 [ 'global'/2 -34
  365. 'local'/3 -20] 520
  366.  
  367. p'index_key'/2 82 532 32 8 49 'var' 512 4 544 -4 516 668 548 -4 513 16 518
  368. 534 512 8 1 -8 240 4 176 0 11 114 -4 516 392 160 -4 8 145 -8 513 20 515
  369. p'index_key_1'/2
  370.  
  371. p'index_key_1'/2 124 528 108 6 108 532 32 8 49 'var' 512 4 544 -4 516 640
  372. 548 -4 513 16 518 533 32 81 'const'/1 352 512 4 544 -4 516 672 548 -4 513
  373. 16 518 533 16 96 258 49 'list' 547 518 534 81 'struct'/2 289 290 517 388
  374. 535 -102 8 536 -74 537 -26
  375.  
  376. p'init_other_perms'/4 28 243 16 242 12 241 8 240 4 176 0 3 515 p'init_other_perms'/5
  377.  
  378. p'init_other_perms'/5 138 532 16 20 33 0 36 12 547 518 534 512 28 0 -12
  379. 1 -28 2 -24 3 -8 4 -20 144 -12 145 -24 114 -4 127 2048 -16 514 p'tree_get_item'/3
  380. 0 144 -12 145 -28 162 -4 28 147 -8 148 -16 514 p'init_other_perms_1'/5 8
  381. 384 480 1 500 432 145 -20 146 -16 163 -8 20 148 -12 513 32 515 p'init_other_perms'/5
  382.  
  383. p'init_other_perms_1'/5 116 532 106 20 512 20 0 -12 1 -8 2 -20 99 291 356
  384. 83 'var'/3 291 292 368 'variable' 83 'put'/1 368 0 4099 84 'y'/1 275 544
  385. -4 144 -20 516 640 548 -4 386 385 501 451 144 -20 209 'unsafe'/1 257 513
  386. 32 517 128 534 36 12 518
  387.  
  388. p'link_d'/3 112 528 108 98 12 532 14 12 64 34 4 547 518 533 22 96 288 369
  389. 80 'branch'/2 353 354 547 518 534 96 291 288 83 'branch'/2 291 292 97 368
  390. 'begin' 323 242 12 226 368 'end' 355 244 4 515 p'link_d_1'/3 535 -78 12
  391. 537 -58 520
  392.  
  393. p'link_d_1'/3 84 528 80 6 80 532 34 12 96 288 369 80 'branch'/2 288 354
  394. 97 368 'last_branch' 320 547 518 534 96 291 288 83 'branch'/2 291 292 97
  395. 368 'branch' 323 244 4 515 p'link_d_1'/3 520
  396.  
  397. p'local_context'/3 24 528 6 20 20 80 'local'/3 353 354 257 518 520
  398.  
  399. p'mark_voids'/1 34 528 30 18 12 532 8 4 64 518 534 96 289 288 515 p'mark_voids'/2
  400. 520
  401.  
  402. p'mark_voids'/2 98 528 94 36 12 532 26 8 64 241 0 177 '$VOID' 178 0 11 517
  403. 388 534 96 512 16 275 274 1 -8 112 -4 145 -8 146 -16 516 132 160 -4 16 145
  404. -8 146 -16 147 -12 513 28 515 p'mark_voids'/4 520
  405.  
  406. p'mark_voids'/4 130 528 126 126 90 532 60 16 48 '<' 512 8 2 -8 3 -4 241
  407. 0 177 '$VOID' 178 0 11 516 388 144 -4 145 -8 513 20 515 p'mark_voids'/2
  408. 534 48 '=' 243 0 242 4 515 p'skip_nonvoid'/2 529 24 [ '<' -82 '=' -24] 520
  409.  
  410. p'needs_env'/1 100 528 60 96 96 532 26 4 80 'var'/3 257 288 257 80 'y'/1
  411. 257 518 533 12 80 'call'/3 259 518 534 80 'try_else'/1 257 518 530 24 [
  412. 'call'/3 -26 'try_else'/1 -14 'var'/3 -52] 520
  413.  
  414. p'negate_condition'/2 186 528 182 182 114 532 18 8 48 'eq' 49 'ne' 518 533
  415. 16 48 'ne' 49 'eq' 518 533 16 48 'lt' 49 'ge' 518 533 16 48 'le' 49 'gt'
  416. 518 533 16 48 'gt' 49 'le' 518 534 48 'ge' 49 'lt' 518 529 56 [ 'eq' -106
  417. 'ge' -18 'gt' -34 'le' -52 'lt' -70 'ne' -88] 520
  418.  
  419. p'peep'/8 1246 528 1098 1084 1066 532 50 32 80 'unify_void'/1 296 97 297
  420. 289 89 'unify_void'/1 297 547 408 409 500 441 208 'unify_void'/1 329 515
  421. p'peep'/8 533 38 80 'unify_void'/1 296 97 288 289 102 297 294 89 'unify_void'/1
  422. 328 547 515 p'peep'/8 533 50 80 'label'/1 296 97 297 371 288 289 89 'jump'/1
  423. 328 102 297 294 89 'jump'/1 328 547 515 p'peep'/8 533 40 80 'label'/1 296
  424. 97 297 289 89 'label'/1 328 547 208 'label'/1 328 515 p'peep'/8 533 142
  425. 512 48 2 -40 3 -36 4 -32 5 -28 102 272 277 7 -20 80 'jmp'/2 274 295 97 273
  426. 371 294 371 283 282 86 'label'/1 288 544 -16 247 4 516 136 144 -8 145 -12
  427. 146 -4 514 p'transform_skipped_instr'/3 12 548 -4 144 -36 145 -32 146 -28
  428. 147 -24 148 -20 149 -16 150 -12 151 -8 513 48 515 p'peep'/8 533 80 80 'push_integer'/1
  429. 296 97 297 371 288 289 89 'var'/3 368 'pop' 297 368 'variable' 89 'x'/1
  430. 297 102 298 294 90 'con'/2 298 328 90 'put'/1 329 547 515 p'peep'/8 533
  431. 82 80 'var'/3 368 'push' 296 368 'value' 88 'x'/1 296 97 297 289 89 'var'/3
  432. 368 'pop' 297 368 'variable' 89 'x'/1 297 547 208 'moveregister'/2 328 329
  433. 515 p'peep'/8 533 26 80 'moveregister'/2 296 328 97 288 289 547 515 p'peep'/8
  434. 533 94 97 368 'skip' 369 512 20 2 -20 3 -16 5 -12 7 -8 38 16 80 'call'/3
  435. 288 289 368 0 3 547 114 -4 514 p'customize_exec'/3 0 144 -16 145 -20 146
  436. -12 227 336 337 513 32 515 p'add_dealloc'/4 533 114 512 32 0 -32 1 -28 2
  437. -24 51 'no' 4 -20 5 -16 102 294 274 86 'allocate'/1 341 7 -8 544 -4 144
  438. -32 514 p'needs_env'/1 0 548 -4 144 -32 145 -28 146 -24 179 'yes' 148 -20
  439. 149 -16 150 -12 151 -8 513 44 515 p'peep'/8 533 100 97 512 24 276 275 3
  440. -12 7 -4 38 16 80 'call'/3 288 289 277 101 291 273 547 402 389 501 434 514
  441. p'customize_call'/4 0 132 244 20 144 -20 145 -16 146 -24 147 -12 150 -8
  442. 151 -4 513 36 515 p'peep'/8 533 44 48 'skip' 65 38 16 547 243 0 227 368
  443. 'proceed' 359 242 4 245 8 515 p'add_dealloc'/4 533 48 38 16 80 'try_else'/1
  444. 296 97 288 289 101 297 294 89 'try_else'/1 328 547 132 244 20 515 p'peep'/8
  445. 533 100 97 512 36 280 279 2 -28 3 -24 4 -20 5 -16 7 -8 102 290 274 544 -4
  446. 145 -28 514 p'customize'/3 0 548 -4 144 -36 145 -32 146 -28 147 -24 148
  447. -20 149 -16 150 -12 151 -8 513 48 515 p'peep'/8 534 97 296 289 102 352 294
  448. 248 0 515 p'peep'/8 535 -442 32 536 -228 536 -136 537 -38 535 -460 32 536
  449. -150 537 -52 535 16 32 536 -478 536 96 536 -172 537 -74 530 56 [ 'call'/3
  450. -590 'jmp'/2 -928 'label'/1 64 'moveregister'/2 -618 'push_integer'/1 -784
  451. 'unify_void'/1 74 'var'/3 -702] 535 -1092 32 537 -1042 535 -1192 32 537
  452. -1144 530 24 [ 'call'/3 -466 'try_else'/1 -318]
  453.  
  454. p'peephole'/6 90 528 86 12 72 532 62 24 96 288 244 24 242 16 241 8 289 512
  455. 4 544 -4 245 28 243 20 179 'no' 514 p'peep'/8 0 548 -4 513 16 518 534 64
  456. 100 368 'proceed' 357 518 520
  457.  
  458. p'permvars'/2 144 528 140 6 140 512 24 1 -16 96 288 289 114 -12 195 116
  459. -4 197 198 119 -8 127 2048 -24 127 2048 -20 514 p'permvars'/8 0 160 -4 24
  460. 145 -8 146 -24 514 p'set_difference'/3 4 160 -8 20 161 -4 20 130 147 -12
  461. 148 -16 514 p'alloc_perms'/5 12 160 -4 8 514 p'bind_perms'/1 4 160 -4 4
  462. 513 16 515 p'bind_temps'/1 520
  463.  
  464. p'permvars'/8 624 528 572 562 548 532 26 32 48 'skip' 65 66 36 12 39 24
  465. 547 518 533 202 512 48 1 -44 3 -12 4 -36 5 -32 6 -8 7 -28 80 'literal'/5
  466. 283 257 288 289 295 98 294 281 86 'literal'/2 275 327 547 146 -16 127 2048
  467. -24 127 2048 -20 127 2048 -4 514 p'vars_in_literal'/3 0 144 -16 145 -32
  468. 146 -4 514 p'set_intersection'/3 0 160 -4 48 145 -8 146 -24 514 p'set_union'/3
  469. 8 144 -8 145 -4 146 -12 514 p'set_union'/3 8 144 -32 145 -28 146 -24 163
  470. -4 32 148 -20 149 -16 166 -8 32 151 -12 513 44 515 p'permvars'/8 533 202
  471. 80 'cut'/2 257 512 48 275 97 283 282 98 290 281 82 'cut'/1 307 3 -12 4 -36
  472. 5 -32 6 -8 7 -28 547 545 -4 127 2048 -24 127 2048 -20 538 46 144 -16 145
  473. -32 514 p'set_member'/2 0 548 -4 144 -16 145 -8 146 -24 514 p'set_insert'/3
  474. 0 519 16 540 144 -24 145 -8 516 128 144 -16 145 -12 146 -20 514 p'set_insert'/3
  475. 16 144 -32 145 -28 146 -24 163 -4 32 148 -20 149 -16 166 -8 32 151 -12 513
  476. 44 515 p'permvars'/8 533 90 97 512 32 279 278 2 -24 3 -20 4 -16 6 -12 7
  477. -8 544 -4 514 p'fence'/1 0 548 -4 144 -32 145 -28 146 -24 147 -20 148 -16
  478. 149 -20 150 -12 151 -8 513 44 515 p'permvars'/8 534 97 288 289 515 p'permvars'/8
  479. 535 -542 32 536 -112 537 -24 535 -122 32 537 -34 535 8 32 536 -136 537 -48
  480. 530 24 [ 'cut'/2 -348 'literal'/5 -552]
  481.  
  482. p'prepare_cut'/5 74 528 12 12 6 532 30 20 36 12 512 4 544 -4 516 640 548
  483. -4 513 16 518 534 48 'true' 99 291 356 83 'cut'/2 291 353 83 'save'/1 354
  484. 518
  485.  
  486. p'skip_nonvoid'/2 68 528 64 18 12 532 8 8 64 518 534 96 512 12 274 273 112
  487. -4 146 -12 516 132 160 -4 12 145 -12 146 -8 513 24 515 p'skip_nonvoid'/3
  488. 520
  489.  
  490. p'skip_nonvoid'/3 86 528 82 82 46 532 20 12 48 '<' 242 0 515 p'mark_voids'/2
  491. 534 48 '=' 242 0 515 p'skip_nonvoid'/2 529 24 [ '<' -38 '=' -20] 520
  492.  
  493. p'transform_skipped_instr'/3 62 528 30 58 12 532 20 12 48 'fail' 82 'cmp'/1
  494. 353 518 534 80 'jump'/1 291 82 'jmp'/2 241 0 289 323 515 p'negate_condition'/2
  495. 520
  496.  
  497. p'translate'/4 304 532 242 16 512 44 0 -8 1 -40 2 -36 3 -4 544 -44 144 -8
  498. 127 2048 -32 127 2048 -28 127 2048 -24 127 2048 -20 127 2048 -16 127 2048
  499. -12 516 644 144 -8 145 -4 146 -12 147 -16 228 368 'skip' 369 514 p'analyse_clause'/5
  500. 8 160 -4 36 514 p'voidvars'/1 4 144 -4 145 -20 514 p'permvars'/2 0 160 -4
  501. 32 145 -20 146 -16 227 368 'skip' 369 514 p'gen_code'/4 4 144 -16 145 -12
  502. 146 -8 147 -4 514 p'annotate'/4 0 160 -12 28 161 -16 28 162 -8 28 163 -4
  503. 28 148 -24 149 -20 514 p'peephole'/6 24 548 -4 513 16 518 534 512 4 0 -4
  504. 51 'var' 97 368 'fail' 354 176 '!?   ERROR : Clause not compiled.' 514 p'message'/1
  505. 0 176 '!?   ------- ' 145 -4 513 16 515 p'message'/2
  506.  
  507. p'translate_assignment'/5 142 532 56 20 34 4 36 12 512 4 544 -4 177 '$VOID'
  508. 178 0 11 516 388 548 -4 176 '!?   WARNING : No code generated for assignment to void variable.'
  509. 513 16 515 p'message'/1 534 512 28 0 -28 1 -24 2 -20 3 -16 4 -12 144 -28
  510. 113 -8 114 -4 516 388 160 -8 28 161 -4 28 146 -28 147 -24 148 -20 149 -16
  511. 150 -12 513 40 515 p'gen_assign_code'/7
  512.  
  513. p'translate_body_args'/14 418 528 48 48 6 532 38 56 48 0 3 35 8 37 16 39
  514. 24 41 32 43 40 45 48 547 518 534 512 108 0 -4 1 -108 2 -104 3 -52 4 -100
  515. 5 -48 6 -96 7 -44 8 -92 9 -40 10 -88 11 -36 12 -84 13 -32 144 -4 145 -108
  516. 114 -8 127 2048 -80 127 2048 -76 127 2048 -72 127 2048 -68 127 2048 -64
  517. 127 2048 -60 127 2048 -56 127 2048 -28 127 2048 -24 127 2048 -20 127 2048
  518. -16 127 2048 -12 516 392 384 480 1 501 463 -80 160 -8 108 145 -80 146 -28
  519. 147 -24 148 -20 149 -16 150 -12 514 p'gen_body_code'/7 8 160 -4 100 161
  520. -20 100 162 -16 100 163 -12 100 164 -8 100 149 -68 150 -44 151 -64 152 -40
  521. 153 -60 154 -36 155 -56 156 -32 157 -52 158 -28 159 60 -48 159 64 -24 514
  522. p'classify_arg'/17 44 160 -28 56 145 -56 146 -52 163 -24 56 148 -48 165
  523. -20 56 150 -44 167 -16 56 152 -40 169 -12 56 154 -36 171 -8 56 156 -32 173
  524. -4 56 513 68 515 p'translate_body_args'/14
  525.  
  526. p'translate_expression'/5 82 512 28 0 -28 1 -24 2 -20 3 -16 4 -12 144 -28
  527. 113 -8 114 -4 516 388 160 -8 28 161 -4 28 146 -28 147 -24 148 -20 149 -16
  528. 150 -12 513 40 515 p'gen_expr_code'/7
  529.  
  530. p'translate_head_args'/14 418 528 48 48 6 532 38 56 48 0 3 35 8 37 16 39
  531. 24 41 32 43 40 45 48 547 518 534 512 108 0 -4 1 -108 2 -104 3 -52 4 -100
  532. 5 -48 6 -96 7 -44 8 -92 9 -40 10 -88 11 -36 12 -84 13 -32 144 -4 145 -108
  533. 114 -8 127 2048 -80 127 2048 -76 127 2048 -72 127 2048 -68 127 2048 -64
  534. 127 2048 -60 127 2048 -56 127 2048 -28 127 2048 -24 127 2048 -20 127 2048
  535. -16 127 2048 -12 516 392 384 480 1 501 463 -80 160 -8 108 145 -80 146 -28
  536. 147 -24 148 -20 149 -16 150 -12 514 p'gen_head_code'/7 8 160 -4 100 161
  537. -20 100 162 -16 100 163 -12 100 164 -8 100 149 -68 150 -44 151 -64 152 -40
  538. 153 -60 154 -36 155 -56 156 -32 157 -52 158 -28 159 60 -48 159 64 -24 514
  539. p'classify_arg'/17 44 160 -28 56 145 -56 146 -52 163 -24 56 148 -48 165
  540. -20 56 150 -44 167 -16 56 152 -40 169 -12 56 154 -36 171 -8 56 156 -32 173
  541. -4 56 513 68 515 p'translate_head_args'/14
  542.  
  543. p'translate_literal'/8 298 528 136 136 250 532 82 32 48 'head' 81 '/'/2
  544. 257 288 102 302 242 4 244 8 292 94 'head'/1 320 547 131 245 44 133 243 24
  545. 247 52 135 245 32 137 247 40 249 48 515 p'translate_head_args'/14 533 42
  546. 48 'special' 81 '/'/2 288 289 547 244 12 245 16 246 20 247 24 515 p'translate_special'/7
  547. 534 81 '/'/2 302 303 60 102 303 64 300 95 64 'body'/1 335 60 223 64 '/'/2
  548. 334 335 60 222 'call'/3 352 335 64 355 227 334 357 255 60 0 242 4 130 244
  549. 40 132 247 20 134 242 28 136 244 36 246 44 248 52 515 p'translate_body_args'/14
  550. 535 4 32 537 -122 529 24 [ 'head' -252 'special' -170]
  551.  
  552. p'translate_special'/7 664 528 660 660 528 532 26 28 48 'true' 49 0 3 36
  553. 12 38 20 518 533 30 48 'fail' 49 0 3 38 20 99 368 'fail' 356 518 533 44
  554. 48 '$EVALUATE' 49 0 11 82 '$EVALUATE'/1 288 243 4 244 8 245 12 246 16 515
  555. p'translate_expression'/5 533 44 48 '$ASSIGN' 49 0 11 82 '$ASSIGN'/1 288
  556. 243 4 244 8 245 12 246 16 515 p'translate_assignment'/5 533 60 48 '$=:='
  557. 49 0 3 38 20 99 291 371 368 'fail' 371 293 356 83 'jmp'/2 368 'eq' 291 85
  558. 'label'/1 323 518 533 60 48 '$=\\=' 49 0 3 38 20 99 291 371 368 'fail' 371
  559. 293 356 83 'jmp'/2 368 'ne' 291 85 'label'/1 323 518 533 60 48 '$<' 49 0
  560. 3 38 20 99 291 371 368 'fail' 371 293 356 83 'jmp'/2 368 'lt' 291 85 'label'/1
  561. 323 518 533 60 48 '$=<' 49 0 3 38 20 99 291 371 368 'fail' 371 293 356 83
  562. 'jmp'/2 368 'le' 291 85 'label'/1 323 518 533 60 48 '$>' 49 0 3 38 20 99
  563. 291 371 368 'fail' 371 293 356 83 'jmp'/2 368 'gt' 291 85 'label'/1 323
  564. 518 534 48 '$>=' 49 0 3 38 20 99 291 371 368 'fail' 371 293 356 83 'jmp'/2
  565. 368 'ge' 291 85 'label'/1 323 518 529 120 [ '$<' -246 '$=:=' -370 '$=<'
  566. -184 '$=\\=' -308 '$>' -122 '$>=' -62 '$ASSIGN' -416 '$EVALUATE' -462 'fail'
  567. -494 'true' -520] 520
  568.  
  569. p'trimmable_call'/3 84 528 80 80 44 532 14 12 48 'external' 66 518 534 48
  570. 'builtin' 97 368 'skip' 369 66 518 529 24 [ 'builtin' -24 'external' -36]
  571. 520
  572.  
  573. p'val_type'/2 216 528 176 212 140 532 22 8 80 'put'/1 257 81 'unsafe'/1
  574. 257 518 533 18 80 'get'/1 257 49 'local' 518 533 16 48 'unify' 49 'global'
  575. 518 533 16 48 'pop' 49 'global' 518 533 34 48 'push' 176 '!?   ERROR : Unbound variable in arithmetical expression.'
  576. 512 0 514 p'message'/1 0 520 513 12 518 534 80 'save'/1 257 49 'global'
  577. 518 529 24 [ 'pop' -72 'push' -54 'unify' -90] 530 24 [ 'get'/1 -146 'put'/1
  578. -168 'save'/1 -56] 520
  579.  
  580. p'vars_in_lit'/3 96 528 12 6 12 532 14 12 66 33 0 547 518 533 56 512 16
  581. 1 -12 96 288 275 98 320 273 544 -4 516 640 548 -4 144 -16 145 -12 146 -8
  582. 513 28 515 p'vars_in_lit'/3 534 96 257 288 515 p'vars_in_lit'/3
  583.  
  584. p'vars_in_literal'/3 38 512 8 2 -8 114 -4 514 p'vars_in_lit'/3 0 160 -4
  585. 8 145 -8 513 20 517 160
  586.  
  587. p'voidvars'/1 28 512 4 113 -4 516 168 160 -4 4 513 16 515 p'mark_voids'/1
  588.  
  589.